package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.JingfeiDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 经费管理Mapper接口
 * 
 * @author ruoyi
 * @date 2023-04-10
 */
@Mapper
public interface JingfeiDetailMapper 
{
    /**
     * 查询经费管理
     * 
     * @param id 经费管理主键
     * @return 经费管理
     */
    public JingfeiDetail selectJingfeiDetailById(String id);

    /**
     * 查询经费管理列表
     * 
     * @param jingfeiDetail 经费管理
     * @return 经费管理集合
     */
    public List<JingfeiDetail> selectJingfeiDetailList(JingfeiDetail jingfeiDetail);

    /**
     * 新增经费管理
     * 
     * @param jingfeiDetail 经费管理
     * @return 结果
     */
    public int insertJingfeiDetail(JingfeiDetail jingfeiDetail);

    /**
     * 修改经费管理
     * 
     * @param jingfeiDetail 经费管理
     * @return 结果
     */
    public int updateJingfeiDetail(JingfeiDetail jingfeiDetail);

    /**
     * 删除经费管理
     * 
     * @param id 经费管理主键
     * @return 结果
     */
    public int deleteJingfeiDetailById(String id);

    /**
     * 批量删除经费管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJingfeiDetailByIds(String[] ids);

    /**
     * 根据专家ID和经费批次ID查询专家经费信息
     * @param zhuanjiaId 专家ID
     * @param jingfeipiciId 经费ID
     * @return
     */
    JingfeiDetail selectAllByZhuangjiaidAndJingfeipiciid(@Param("zhuanjiaId") String zhuanjiaId, @Param("jingfeipiciId") String jingfeipiciId);


    /**
     * 根据专家ID和经费批次ID查询专家经费信息
     * @param zhuanjiaId 专家ID
     * @param jingfeipiciId 专家中心经费批次经费ID
     * @return
     */
    JingfeiDetail selectAllByZhuangjiaidAndJingfeipiciIdAndDeptId(@Param("zhuanjiaId") String zhuanjiaId, @Param("deptId") String deptId,@Param("jingfeipiciId") String jingfeipiciId);

    LocalDateTime selectTingfashijianByZhuanjiaId(@Param("zhuanjiaId") String zhuanjiaId,
                                                  @Param("deptId") String deptId,
                                                  @Param("jingfeiPiciId") String jingfeiPiciId,
                                                  @Param("kaishishijian")String kaishishijian);

    /**
     * 单位拨款详情 专家list
     *
     * @param map
     * @return 专家列表
     */
    List<Map> selectZhuanjiaList(Map<String, Object> map);

    List<JingfeiDetail> selectAllByJingfeipiciidAndZhuangjiaids(@Param("jingfeiPiciId") String jinfeiPiciId,
                                                                @Param("zhuanjiaIds") String[] zhuanjiaIds);

}
